package com.glorystone.ins.dao;

import com.glorystone.ins.common.common.PageVo;
import com.glorystone.ins.common.common.Pageable;
import com.glorystone.ins.domain.AuditTask;
import com.glorystone.ins.domain.EaringPoint;
import com.glorystone.ins.domain.Insurer;
import com.glorystone.ins.domain.Product;
import com.glorystone.ins.interceptor.PageList;
import com.glorystone.ins.vo.RebateSetVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface ProductMpr {
    int deleteByPrimaryKey(Long tid);

    int insert(Product record);

    int insertSelective(Product record);

    Product selectByPrimaryKey(Long tid);

    int updateByPrimaryKeySelective(Product record);

    int updateByPrimaryKey(Product record);

    //List<Product> selectAll(@Param("t") Integer t,@Param("product") Product product);

    Product getProductTimeByCompany(@Param("companyId") Long companyId,@Param("type") Integer type);

    Product getProductByTid(@Param("tid") Long tid);

    Product getRejectProductByTid(@Param("tid") Long tid);

    PageList<Product> selectAll(@Param("tid") Long tid, @Param("t") Integer t, @Param("vo") PageVo vo, Pageable pageable);

    List<Product> getProductByCompanyIdAndType(@Param("companyId") Long companyId);

    List<Insurer> getCompany();

    Integer selectProductBycompanyIdAndType(@Param("companyId") Long companyId,@Param("type") Integer type);

    Product getProductMessage(@Param("rebateSetVo") RebateSetVo rebateSetVo);

    Product getProductMessageByProductId(@Param("rebateSetVo") RebateSetVo rebateSetVo);

    Product getProduct(@Param("companyId") Long companyId,@Param("type") Integer type);

    List<Product> findAllPriceList();

}